package com.sky.vo;
/**
 * 1.当前模块名：sky-pojo
 *   模块作用：存放视图对象(Value Object)，用于Controller层返回给前端的结构化数据
 * 2.当前包名：com.sky.vo
 *   包作用：封装Controller层返回的视图数据模型（Value Object）
 * 3.当前类名：DishItemVO
 *   类作用：封装菜品项展示数据的视图对象
 */
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * DishItemVO：菜品项视图对象
 * 知识点说明：
 * 1. VO（视图对象）模式：用于展示层(Controller)向视图层(前端)传输定制化展示数据
 * 2. 序列化必要性：实现Serializable接口支持分布式缓存和网络传输
 * 3. Lombok注解：@Builder提供流畅API构建模式，@Data自动生成通用方法
 * 4. 字段业务设计：精选核心菜品展示属性（名称/图片/描述）提升接口性能
 * 5. 语义化命名：字段命名精确表达业务含义（copies表示份数）
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DishItemVO implements Serializable {

    //菜品名称
    private String name;

    //份数
    private Integer copies;

    //菜品图片
    private String image;

    //菜品描述
    private String description;
}
/**
 * 仿写：
 * SetmealItemVO：套餐项视图对象
 *@Data
 *@Builder
 *@NoArgsConstructor
 *@AllArgsConstructor
 *public class SetmealItemVO implements Serializable {
 * private Long id;// 套餐ID（唯一标识）
 * private String name;// 套餐名称（首屏展示项）
 * private BigDecimal price; // 套餐价格（BigDecimal安全计算）
 * private String image;// 套餐主图（CDN加速路径）
 * private Integer status; // 状态（0停售/1启售）
 * private String description; // 套餐描述（支持多行文本）
 * private List<DishItemVO> dishes; // 包含菜品列表
 * }
 */